<!DOCTYPE html>
            
<HTML>
<HEAD>
<meta name="booktitle" content="Developing Applications With Objective Caml" >
 <meta charset="ISO-8859-1"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<META name="GENERATOR" content="hevea 1.05-7 of 2000-02-24">
<META NAME="Author" CONTENT="Christian.Queinnec@lip6.fr">
<LINK rel=stylesheet type="text/css" href="videoc-ocda.css">
<script language="JavaScript" src="videoc.js"><!--
//--></script>
<TITLE>
 Plan of the Chapter
</TITLE>
</HEAD>
<BODY class="regularBody">
<A HREF="book-ora151.html"><IMG SRC ="previous_motif.gif" ALT="Previous"></A>
<A HREF="index.html"><IMG SRC ="contents_motif.gif" ALT="Contents"></A>
<A HREF="book-ora153.html"><IMG SRC ="next_motif.gif" ALT="Next"></A>
<HR>

<H2>Plan of the Chapter</H2>The first section compares the functional/modular model and the object
model. This comparison brings out the particular features of each
model, in order to show how many of them may be translated by hand
into the other model. One can thus simulate inheritance with modules
and use classes to implement simple modules. The limitations of each
model are then reviewed. The second section is concerned with the
problem of extensibility for data structures and methods, and proposes
a solution which mixes the two models. The third section describes
some other combinations of the two models by the use of abstract
module types for objects.<BR>
<BR>
<HR>
<A HREF="book-ora151.html"><IMG SRC ="previous_motif.gif" ALT="Previous"></A>
<A HREF="index.html"><IMG SRC ="contents_motif.gif" ALT="Contents"></A>
<A HREF="book-ora153.html"><IMG SRC ="next_motif.gif" ALT="Next"></A>
</BODY>
</HTML>
